interface shaderConfig {
    vs: string;
    fs: string;
    shaderName: string;
    attribs: vertexBuffer[];
    unifroms: uniformBuffer[];
    mode: GPUPrimitiveTopology;
    // ["point-list", "line-list", "line-strip", "triangle-list", "triangle-strip"]
}


interface locationName {
    name: string;
}

interface vertexBuffer extends locationName {
    location: number;
    size: GPUVertexFormat;
    // _size?: number;
}

interface uniformBuffer extends locationName {
    group: number;
    binding: number;
    groupLayout?: GPUBindGroupLayout;
}

export type {
    shaderConfig, locationName, vertexBuffer, uniformBuffer
}